<?php
function csvfile($m) {
    $file=fopen($m,'r');
    $num=0;
    while (!feof($file)) {
        $csv[$num]=fgetcsv($file);
        $num=$num+1;
    }
    return $csv;
}


function columnfile($n,$csv) {

    for ($a=0; $a < count($csv)-1 ; $a++) {
        $column[$a]= trimall(mb_convert_encoding($csv[$a][$n],"UTF-8","GBK")) ;
    }
    return $column;
}


function tablefile($csv) {

    $count_column=count($csv[0]);
    $b=0;
    while ($b <= $count_column-1) {
        $table[$b]=columnfile($b,$csv);
        $b=$b+1;
    }
    return $table;
}

//从新整理表格数值为列关系
//用法 $table=tablefile(csvfile(' file() '));


function trimall($str)
{
    $qian=array(" ","　","\t","\n","\r");
    $hou=array("","","","","");
    return str_replace($qian,$hou,$str);
}

//去掉字符串中所有空白字符

function onsort($column_num,$table){
    asort($table[$column_num-1]);
    $csv_column=count($table);//列数

    for ($i=0; $i < $csv_column ; $i++) { 
        foreach ($table[1] as $key => $value) {
            $bb[$key]=$table[$i][$key];
        }
        $table[$i]=$bb;
        $bb="";
    }
return $table;
}

//对于指定列进行升序排列，并对整表数据排列
//要调整那一列就输入列数$column_num
//用法实例：$table=onsort(2,$table);

function downsort($column_num,$table){
    arsort($table[$column_num-1]);
    $csv_column=count($table);//列数

    for ($i=0; $i < $csv_column ; $i++) { 
        foreach ($table[1] as $key => $value) {
            $bb[$key]=$table[$i][$key];
        }
        $table[$i]=$bb;
        $bb="";
    }
return $table;
}

//对于指定列进行降序排列，并对整表数据排列
//要调整那一列就输入列数$column_num
//用法实例：$table=downsort(2,$table);

function replace($table_array,$urlcsv) {
  $url=tablefile(csvfile($urlcsv));

  for ($v=0; $v < count($table_array) ; $v++) {
    for ($i=0; $i < count($url[0]) ; $i++) {
      if ($url[0][$i] == $table_array[$v]) {
        $table_array[$v]=$url[1][$i];
      }
    }
  }
return $table_array;
}

//根据列表表格数据对现有表格数据内容进行替换
//用法实例：$table[23]=replace($table[23],'url.csv');
//$table_array原表格列数据，$urlcsv为对比表格名称，$url替换数据[0]为替换前数据，[1]为替换后数据

function includeReplace($array,$urlcsv) {
  $url=tablefile(csvfile($urlcsv));

  for ($i=0; $i < count($array) ; $i++) {
    for ($a=0; $a < count($url[0]) ; $a++) {
      if (strstr($array[$i],$url[0][$a])) {
        $array[$i]=$url[1][$a];
      }
    }
  }
  return $array;
}


//根据url表格内字符，对包含的数组元素进行替换
//用法实例：$table[25]=includeReplace($table[25],$xm);
//$array原表格列数据，$urlcsv为对比表格名称，$url替换数据[0]为替换前数据，[1]为替换后数据


function writeCsv($name,$write) {
  $file=fopen($name.".csv","w");

  $ll=array();
  for ($b=0; $b < count($write[0]) ; $b++) {
    for ($i=0; $i < count($write) ; $i++) {
      $ll[$b][]=$write[$i][$b];
    }
  }

  foreach ($ll as $fields) {
    fputcsv($file,$fields);
  }
}

//把数据表格数据写入文件
//用法实例：writeCsv("hh",$write);
//在写入之前，$write内容必须是所有要写入的数据总表

 ?>
